package com.nnnu.wsnackshop.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nnnu.wsnackshop.pojo.dto.BannerDTO;
import com.nnnu.wsnackshop.pojo.entity.Banners;
import com.nnnu.wsnackshop.pojo.vo.BannerVO;

import java.util.List;

/**
 * 轮播图Service接口
 */
public interface IBannersService extends IService<Banners> {

    /**
     * 分页查询轮播图
     */
    IPage<BannerVO> getBannerPage(Page<Banners> page, String title, Integer status, String linkType);

    /**
     * 获取启用的轮播图列表（用户端）
     */
    List<BannerVO> getEnabledBanners();

    /**
     * 获取用户端轮播图列表
     */
    List<BannerVO> getUserBanners();

    /**
     * 根据ID获取轮播图详情
     */
    BannerVO getBannerById(Integer id);

    /**
     * 添加轮播图
     */
    void addBanner(BannerDTO bannerDTO);

    /**
     * 更新轮播图
     */
    void updateBanner(BannerDTO bannerDTO);

    /**
     * 删除轮播图
     */
    void deleteBanner(Integer id);

    /**
     * 批量删除轮播图
     */
    void deleteBanners(List<Integer> ids);

    /**
     * 更新轮播图状态
     */
    void updateBannerStatus(Integer id, Integer status);

    /**
     * 更新轮播图排序
     */
    void updateBannerSort(Integer id, Integer sortOrder);
}